In many situations, a printing device (such as a printer) is coupled to a processing device, such as a personal computer or a workstation that helps render a print job printed by the printing device. The processing device generates one or more print jobs to be printed on the printer. For example, the print jobs can be generated by one or more application programs executed by the processing device. The print jobs may include any type of graphical elements or information supported by the printer, including text, pictures, and so forth. The processing device typically translates the print job into a language that is understood by the printer, such as Printer Control Language (PCL) or Postscript. A particular printer may understand a single language, thereby requiring the processing device to translate the print job into that single language. This type of printer requires an attached processing device to convert the raw print job data into a format (i.e., language) that is understood by the printer.
Other printers may be capable of processing print jobs in multiple languages. These printers are typically more complicated because they are required to identify, interpret and process print commands in several different languages. Although these printers are more complicated, they typically require an attached processing device to provide the print job and other printer control information to the printer. Another type of printer contains its own print rendering engine that is capable of generating a printed output document from raw print job data. Although this type of printer contains its own print rendering engine, it is typically coupled to a processing device, such as a computer, to receive the raw print job data generated, for example, by an application running on the computer.
Connecting each printer to a computer or other processing device increases the overall cost of supporting the printer. If the printer is more sophisticated (e.g., has its own print rendering engine), then the printer requires fewer processing resources from the computer. However, if the printer is inexpensive or supports a limited number of languages, then the computer may be required to perform more processing of the print job prior to communicating the print job to the printer.
The invention described herein provides an improved printing system that allows the distribution of print rendering functions to one or more remote print rendering engines.